/**
 * @typedef {import('@uirouter/angularjs').Ng1StateDeclaration} RouteOpt
 */

/**
 * utils
 * #__NO_SIDE_EFFECTS__
 * @param {DefineRoute} opt
 * @returns {DefineRoute}
 */
export function defineRouter(opt) {
  return opt;
}
/**
 * #__NO_SIDE_EFFECTS__
 * @param {DefineView} view
 * @param {{name: string; url: string;}} keyProp
 * @returns {DefineRoute}
 */
export function combRouter(view, keyProp) {
  return { ...view, ...keyProp };
}

/**
 * #__NO_SIDE_EFFECTS__
 * @param {Promise<() => Thenable<DefineView>>} view
 * @param {{name: string; url: string;}} keyProp
 * @returns {DefineRoute}
 */
export function combRouterLazy(view, keyProp) {
  return { ...view, ...keyProp };
}

/**
 * #__NO_SIDE_EFFECTS__
 * @param {DefineView} viewOpt
 * @returns {DefineView}
 */
export function defineView(viewOpt) {
  return viewOpt;
}

/**
 * #__NO_SIDE_EFFECTS__
 * @typedef {string} ComponentName
 * @param {ComponentName} name
 * @returns {ng.IComponentOptions}
 */
export function resolveComponent(name) {
  return {};
}

/**
 * #__NO_SIDE_EFFECTS__
 * @typedef {string} DirectiveName
 * @param {DirectiveName} name
 * @returns {ng.IDirective}
 */
export function resolveDirective(name) {
  return {};
}
